<?PHP

// Génération d'une clé pour les cours
function cle_random($car) {
  $string = "";
  $chaine = "abcdefghjkmnpqrstuvwxyz23456789";
  srand((double)microtime()*1000000);
  for($i=0; $i<$car; $i++) {
  $string .= $chaine[rand()%strlen($chaine)];
  }
  return $string;
}

// Renvoie un booléan qui permet, si c'est "vrai", à l'utilisateur connecté d'accéder à la liste de ses espaces
// et à la création de cours (si elle est activée dans config.php) dans l'outil d'administration
function access_cours($login)
{
 global $CONF_ldap_champ;
 
 // Récupération de la fiche complète du LDAP
 $ldap=ldap_recherche($CONF_ldap_champ['Login'],$login);
 $user=ldap_recup_infos($ldap[0]);
 
 // Nous acceptons que les personnes dans le ldap avec le statut "perso" qui auront le droit de créer un cours et voir la liste de ses espaces
 if ($user['STT']!="perso")
 return false;
 else
 return true;
}

// Fonction qui va retourner le millésime du code de la correspondance en fonction de son type
// Chaque type de correspondance que vous utilisez doit être traité dans cette fonction
// Si pour un type de correspondance l'année n'a pas de sens renvoyez 0
function recup_correspondance_annee($type,$code)
{
 switch ($type){
        case "ETP": // Etape (formation)
             $annee=substr($code,0,4);
             return $annee;
        case "ELM": // Element (matières)
             $annee=substr($code,0,4);
             return $annee;
        case "STT": // Statut, type de correspondance non millésimé
             return 0;
        case "STTSUP": // Statut - Composante, type de correspondance non millésimé
             return 0;
        case "SUP": // Composante, type de correspondance non millésimé
             return 0;
        case "FACT": // Factice, type de correspondance non millésimé
             return 0;

 }
}

// Fonction qui va retourner la correspondance pour l'année suivante en fonction de son type
// Chaque type de correspondance que vous utilisez doit être traité dans cette fonction
function recup_correspondance_annee_suivante($type,$code)
{
GLOBAL $CONF_annee_en_cours;
 switch ($type){
        case "ETP": // Etape (formation)
             $ln=strlen($code)-4;
             $code_etape=substr($code,4,$ln);
             $code= ($CONF_annee_en_cours+1).$code_etape;             
             return $code;
        case "ELM": // Element (matières)
             $ln=strlen($code)-4;
             $code_element=substr($code,4,$ln);
             $code= ($CONF_annee_en_cours+1).$code_element;             
             return $code;
        case "STT": // Statut, type de correspondance non millésimé
             return $code;
        case "STTSUP": // Statut - Composante, type de correspondance non millésimé
             return $code;
        case "SUP": // Composante, type de correspondance non millésimé
             return $code;
        case "FACT": // Factice, type de correspondance non millésimé
             return $code;

 }
}
// Fonction qui va retourner le libélé du code de la correspondance en fonction de son type
// Chaque type de correspondance que vous utilisez doit être traité dans cette fonction

function recup_correspondance_libele_code($type,$code)
{
global $CONF_bdd_prefixe;
 switch ($type){
        case "ETP":
             $ln=strlen($code)-4;
             $code_etape=substr($code,4,$ln);
             $sql="SELECT * FROM ".$CONF_bdd_prefixe."aua_etape WHERE NO_ETAPE='".$code_etape."'";
             $query=mysql_query($sql);
             if (mysql_num_rows($query)>0)
                {$ligne=mysql_fetch_object($query);}
             else
                {$ligne->L_ETAPE="Formation inconnue";}
             $code_etape="<i>".$code."</i> - ".$ligne->L_ETAPE;             
             return $code_etape;
              
        case "ELM":
             $ln=strlen($code)-4;
             $code_element=substr($code,4,$ln);
             $sql="SELECT * FROM ".$CONF_bdd_prefixe."aua_element WHERE NO_ELEMENT='".$code_element."'";
             $query=mysql_query($sql);
             if (mysql_num_rows($query)>0)
                {$ligne=mysql_fetch_object($query);}
             else
                {$ligne->L_ELEMENT="Code inconnu";}
             $code_element=$ligne->L_ELEMENT;           
             return "<i>".$code."</i> - ".$code_element;             
             
        case "STT":
             if ($code=="perso"){return "Personnels de l'université";}
             if ($code=="etu"){return "Etudiants de l'Université";}
             return "Personnes ayant pour statut '".$code."'";
             
        case "STTSUP":
             $ln_perso=substr($code,0,5);
             $ln_etu=substr($code,0,3);
             if ($ln_perso=="perso")
             {
              $ln=strlen($code)-5;
              $code_SUP=substr($code,5,$ln);
              $sql="SELECT * FROM ".$CONF_bdd_prefixe."aua_structure WHERE C_STRUCTURE='".$code_SUP."'";
              $query=mysql_query($sql);
             if (mysql_num_rows($query)>0)
                {$ligne=mysql_fetch_object($query);}
             else
                {$ligne->L_STRUCTURE=$code_SUP."(inconnue)";}
              $composante=$ligne->L_STRUCTURE;
              return "Personnels de la composante '$composante'";
             }
             if ($ln_etu=="etu")
             {
              $ln=strlen($code)-3;
              $code_SUP=substr($code,3,$ln);
              $sql="SELECT * FROM ".$CONF_bdd_prefixe."aua_structure WHERE C_STRUCTURE='".$code_SUP."'";
              $query=mysql_query($sql);
             if (mysql_num_rows($query)>0)
                {$ligne=mysql_fetch_object($query);}
             else
                {$ligne->L_STRUCTURE=$code_SUP."(inconnue)";}
              $composante=$ligne->L_STRUCTURE;
              return "Etudiants de la composante '$composante'";
             }             
             return "Personnes ayant pour statut/composante '$code'";
             
        case "SUP":
             return $code;
        case "FACT":
             return "";

             }
}
?>
